diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-03-29 14:29:29 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-03-29 14:29:29 +0700 |
| commit | 1d606fe88f97f87e32a58b1b187a71f40c70169c (patch) | |
| tree | 3045839e7e9362f1b851d182614f6ed3ae04af80 /src/pages/blog/[slug].jsx | |
| parent | ac230a35f325cc47e89fd5d635847536f2dd9b44 (diff) | |
blog detail
Diffstat (limited to 'src/pages/blog/[slug].jsx')
| -rw-r--r-- | src/pages/blog/[slug].jsx | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/pages/blog/[slug].jsx b/src/pages/blog/[slug].jsx index e69de29b..63e53bf0 100644 --- a/src/pages/blog/[slug].jsx +++ b/src/pages/blog/[slug].jsx @@ -0,0 +1,54 @@ +import Link from '@/core/components/elements/Link/Link' +import BasicLayout from '@/core/components/layouts/BasicLayout' +import { createSlug, getIdFromSlug } from '@/core/utils/slug' +import useBlog from '@/lib/blog/hooks/useBlog' +import { useRouter } from 'next/router' + +export default function BlogDetail() { + const router = useRouter() + const { slug = '' } = router.query + const id = getIdFromSlug(slug) + const { blog } = useBlog({ id }) + + const parsedContent = blog.data?.content?.replaceAll( + 'src="/web/image', + `src="${process.env.NEXT_PUBLIC_ODOO_HOST}/web/image` + ) + + const contentClassNames = ` + prose + prose-gray + prose-a:text-red_r-10 + prose-a:no-underline + prose-p:my-4 + prose-headings:mt-6 + prose-headings:mb-3 + prose-headings:font-medium + prose-h1:text-title-sm + prose-h2:text-h-md + prose-img:my-0 + prose-img:mb-1 + prose-img:inline-block + prose-hr:my-3 + max-w-none + ` + + return ( + <BasicLayout> + <div className='container mx-auto p-4 md:p-0 my-0 md:my-10'> + <h1 className='text-title-sm md:text-title-md font-semibold mb-2 leading-10'> + {blog.data?.title} + </h1> + <h2 className='leading-6 text-gray_r-12/90 mb-8'> + Diposting pada tanggal {blog.data?.postDate}{' '} + {blog.data?.category?.id && `di ${blog.data?.category?.name}`} + </h2> + + <article + className={contentClassNames} + dangerouslySetInnerHTML={{ __html: parsedContent }} + /> + </div> + </BasicLayout> + ) +} |
